class Node:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

class CircularLinkedList:
    def __init__(self):
        self.head = None  # 头节点

    def is_empty(self):
        """判断循环链表是否为空"""
        return self.head is None

    def create_list(self, arr):
        """根据数组创建循环链表"""
        if not arr:
            return
        self.head = Node(arr[0])
        current = self.head
        for val in arr[1:]:
            current.next = Node(val)
            current = current.next
        # 尾节点指向头节点，形成循环
        current.next = self.head

    def traverse(self):
        """遍历循环链表并返回值列表"""
        if self.is_empty():
            return []
        result = []
        current = self.head
        while True:
            result.append(current.val)
            current = current.next
            # 回到头节点时终止遍历
            if current == self.head:
                break
        return result

# 测试
if __name__ == "__main__":
    cll = CircularLinkedList()
    cll.create_list([1, 2, 3, 4])
    print("循环链表遍历结果:", cll.traverse())  # 输出: [1, 2, 3, 4]
    print("是否为空:", cll.is_empty())  # 输出: False